/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package gestores.iteracao.manipuladores.rename;

import gestores.iteracao.manipuladores.IManipulador;
import gestores.janelas.JanelaConfigBase;
import java.io.File;
import java.io.FileFilter;
import model.ExtensionFilter;

/**
 *
 * @author root
 */
public class ManipuladorRename implements IManipulador {

    private String prefixo = "";
    private int numero = 0;
    private String separador = "";
    private JanelaConfigRename janelaconfig;

    public ManipuladorRename() {
    }

    public ManipuladorRename(String texto) {
        this.prefixo = texto;
    }

    public ManipuladorRename(String texto, String separador) {
        this.prefixo = texto;
        this.separador = separador;
    }

    public boolean manipularArquivo(File arquivo) {
        if (!arquivo.isDirectory()) {
            String nome = arquivo.getName();
            String caminho = arquivo.getPath().substring(0, arquivo.getPath().length() - nome.length());
            String novo = "";
            boolean semextensao = true;
            if (nome.contains(".")) {
                int iponto = 0;
                iponto = nome.lastIndexOf(".");
                if (nome.charAt(iponto - 1) != '/') {
                    semextensao = false;
                    String ext = nome.substring(iponto).toLowerCase();
                    novo = prefixo + separador + numero + ext;
                }
            }

            if (semextensao) {
                novo = prefixo + separador + numero;
            }

            if (!novo.equals("")) {
                arquivo.renameTo(new File(caminho + novo));
                numero++;
                return true;
            }else{
                return false;
            }
        } else {
            return false;
        }
    }

    public FileFilter getFilter() {
        return new ExtensionFilter("*");
    }

    public JanelaConfigBase getJanelaConfig() {
        if (janelaconfig == null) {
            janelaconfig = new JanelaConfigRename(this);
        }
        return janelaconfig;
    }

    void setPrefixo(String pref) {
        this.prefixo = pref;
    }

    void setSeparador(String sep) {
        this.separador = sep;
    }

    public boolean valida() {
        return true;
    }
}
